<?php
/**
 * Permite hacer operaciones con la tabla serie de la base de datos
 * @package simertweb 
 * @subpackage models 
 * @category Administración, Recaudación
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class MSeries extends CI_Model {

    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->model('mhistorico');
    }

    /**
     * Obtiene la ultima serie de tarjetas prepago SIMERT ingresada
     * @return array
     */
    function inicial() {
        $ss = $this->series();
        $aa = array();
        foreach ($ss as $value) {
            $bb = array('mensaje' => '',
                'desde' => $value->desde,
                'hasta' => $value->hasta);
            array_push($aa, $bb);
        }
        return $aa;
    }


    /**
     * Guarda una nueva serie de tarjetas prepago SIMERT
     * @param type $inicio es el inicio de la serie
     * @param type $fin es el fin de la serie
     * @return array
     */
    function generarSerie($inicio, $fin) {
        if ($inicio < $fin) {
            if ($this->comprobarSerie() == 0) {
                $serie = array(
                    'desde' => $inicio,
                    'hasta' => $fin,
                    'habilitado' => 1
                );
                $this->db->insert('serie', $serie);
                $ss = $this->series();
                $aa = array();
                foreach ($ss as $value) {
                    $bb = array('mensaje' => '<font color="black">SERIE CREADA CORRECTAMENTE.</font>',
                        'desde' => $value->desde,
                        'hasta' => $value->hasta);
                    array_push($aa, $bb);
                }
                return $aa;
            } else {
                $dato = $this->comprobarSerie(); //guarda el ultimo digito de la ultima serie 
                if ($dato < $inicio && $dato < $fin) {
                    $serie = array(
                        'desde' => $inicio,
                        'hasta' => $fin
                    );
                    $this->db->insert('serie', $serie);
                    $ss = $this->series();
                    $aa = array();
                    foreach ($ss as $value) {
                        $bb = array('mensaje' => '<font color="black">SERIE CREADA CORRECTAMENTE.</font>',
                            'desde' => $value->desde,
                            'hasta' => $value->hasta);
                        array_push($aa, $bb);
                    }
                    return $aa;
                } else {
                    $ss = $this->series();
                    $aa = array();
                    foreach ($ss as $value) {
                        $bb = array('mensaje' => '<font color="red">ALGUNOS NÚMEROS DE LA SERIE YA EXISTEN.</font>',
                            'desde' => $value->desde,
                            'hasta' => $value->hasta);
                        array_push($aa, $bb);
                    }
                    return $aa;
                }
            }
        } else {
            $ss = $this->series();
            $aa = array();
            foreach ($ss as $value) {
                $bb = array('mensaje' => '<font color="red">SERIE INGRESADA INCORRECTA.</font>',
                    'desde' => $value->desde,
                    'hasta' => $value->hasta);
                array_push($aa, $bb);
            }
            return $aa;
        }
    }

    //devuelve el valor máximo de la serie
    /**
     * Obtiene el valor máximo de las series de tarjetas SIMERT
     * @return int
     */
    function comprobarSerie() {
        $series = $this->db->get('serie')->result();
        $ser = 0;
        if ($series == null) {
            return 0;
        } else {
            foreach ($series as $value) {
                if ($ser < $value->hasta) {
                    $ser = $value->hasta;
                }
            }
            return $ser;
        }
    }

    /**
     * Obtiene todas las series de tarjetas SIMERT
     * @return type array
     */
    function series() {
        $t = $this->db->get('serie');
        return $t->result();
    }

}

?>
